package main

import (
	"fmt"
	"time"
)

func main() {
	var ch = make(chan int)
	// 专用于超时的通道
	var timeout = make(chan int)
	go func() {
		time.Sleep(5 * time.Second)
		timeout <- 1
	}()
	select {
	case ch <- 10:
		// 因为ch是无缓冲通道当发生写操作时会阻塞等待一个读操作
		fmt.Println("往通道ch写入一个整型10")
	case <-ch:
		fmt.Println("从通道ch读取一个元素")
	case <-timeout:
		fmt.Println("超时")
	}
}
